package com.zyj.java1;

import sun.misc.Launcher;
import sun.security.ec.CurveDB;

import java.net.URL;
import java.security.Provider;

/**
 * @program: JVMDemo
 * @ClassName ClassLoaderTest1
 * @author: YaJun
 * @Date: 2021 - 12 - 02 - 11:23
 * @Package: com.zyj.java1
 * @Description:
 */
public class ClassLoaderTest1 {

    public static void main(String[] args) {

        System.out.println("***************启动类加载器***************");
        // 获取BootStrapClassLoader能够加载的api的路径
        URL[] urLs = Launcher.getBootstrapClassPath().getURLs();
        for (URL urL : urLs) {
            System.out.println(urL.toExternalForm());
        }
        // 从上面的路径中随意选择一个类，来看看它的类加载器是什么：启动类加载器
        ClassLoader classLoader = Provider.class.getClassLoader();
        System.out.println(classLoader);    // null


        System.out.println("***************扩展类加载器***************");
//        String extDirs = System.getProperty("java.ext.dirs");
//        for (String path : extDirs.split(";")) {
//            System.out.println(path);
//        }

        // 从上面的路径中随意选择一个类，来看看它的类加载器是什么：系统类加载器
        ClassLoader classLoader1 = CurveDB.class.getClassLoader();
        System.out.println(classLoader1);   // sun.misc.Launcher$ExtClassLoader@4b67cf4d

    }

}
